Global Navigation Satellite Systems (GNSS) broadcast signals from a plurality of satellites using Code Division Multiple Access (CDMA) where a signal from each satellite is identified by a unique pseudorandom code (spreading code). At a GNSS receiver, overlapping signals from all satellites are processed to determine navigation measurements, such as receiver position and velocity measurements. The processing involves first searching for the presence of a signal and an estimation of its frequency offset and code offset relative to a reference clock (acquisition) and then refining the estimates, demodulating the received data and determining the GNSS receiver position (tracking). Both acquisition and tracking involve correlating received signals with a locally generated version of the pseudo random codes over an integration period.
A minimum of four GNSS satellites are needed to compute a receiver position (latitude, longitude, and altitude) and GNSS system time. The more satellites available to the receiver, the more accurate the navigation measurements. Determining accurate locations based on GNSS is becoming more critical as more and more systems are using GNSS for location and navigation. Errors can occur in satellite signals. Devices that process the signals have been implemented to deal with faulty signals. However one type of error that current systems do not address well is multipath errors.